package com.shengqin.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.shengqin.common.pojo.CommonPage;
import com.shengqin.entity.Plan;
import com.shengqin.entity.PlanStudent;
import com.shengqin.pojo.exam.ArrangeParam;
import com.shengqin.pojo.plan.FreeTestImportModel;
import com.shengqin.pojo.plan.PlanQueryParam;
import com.shengqin.pojo.summary.SummaryQueryParam;

import java.util.Collection;
import java.util.List;
import java.util.Set;

public interface IPlanStudentService extends IService<PlanStudent> {
    List<PlanStudent> listByPlanIds(List<Integer> planIds);

    Page<PlanStudent> getPageStudent(CommonPage<PlanStudent> pageParam);

    List<PlanStudent> listStudents(PlanStudent studentParam);

    boolean batchUpdateStudentData(Integer planId);

    List<PlanStudent> listByPlanIdAndSchoolId(Integer planId, Integer schoolId);

    List<PlanStudent> listByPlanId(Integer planId);

    void importBatchFreeTest(List<FreeTestImportModel> cachedDataList,Integer planId);

    List<PlanStudent> queryByPlanIdAndStudyCodes(Integer planId, Collection<String> studyCodes);

    long countByPlanId(PlanQueryParam planQueryParam);

    boolean removeByPlanId(Integer planId);

    long listFreeTestByPlanIdAndSchoolId(Integer planId, Integer schoolId);

    List<PlanStudent> listForCountByPlanIdAndSchoolId(Integer planId, Integer schoolId);

    void updateAvatar(String studyCode,String url);

    List<PlanStudent> listByParam(PlanStudent queryParam);

    List<PlanStudent> listByPlanIdAndClassesNames(Integer planId, Set<String> classesNames);

    void updateStudentInfo(Integer planId);

    List<PlanStudent> listByStudyCodes(String studyCode);

    PlanStudent queryByPlanIdAndStudyCode(String studyCode, Integer planId);

    List<PlanStudent> listByStudyCode(String studyCode);

    boolean removeByStudyCodes(Collection<String> studyCodes);
}
